<?php
try{
    include '../ini.php';
    include '../classes/xl_product.php';
    $dt_xl_product=new xl_product;
    if($_POST['data']['category_id'] == -1){
        throw new Exception('Vui lòng nhập thể loại sản phẩm');
    }
    $_POST['data']['category_id']=$dt_xl_admin->removeSQLI($_POST['data']['category_id']);
    $test_category=$dt_xl_product->read_id_category($_POST['data']['category_id']);
    if($test_category === false){
        throw new Exception('Thể loại sản phẩm không tồn tại');
    }
    if($_POST['data']['brand_products_id'] == -1){
        throw new Exception('Vui lòng nhập thể loại thương hiệu sản phẩm');
    }
    $_POST['data']['brand_products_id']=$dt_xl_admin->removeSQLI($_POST['data']['brand_products_id']);
    if($_POST['data']['brand_products_id'] != 0){
        $test_brand=$dt_xl_product->read_id_brand($_POST['data']['brand_products_id']);
        if($test_brand === false){
            throw new Exception('Thể loại thương hiệu không tồn tại');
        }
    }
    if(empty($_POST['data']['name'])){
        throw new Exception('Vui lòng nhập tên sản phẩm');
    }
    $_POST['data']['name']=$dt_xl_admin->xss_clean($_POST['data']['name']);
    $alias=$dt_xl_admin->vn_str_filter($_POST['data']['name']);
    /*$test_name=$dt_xl_product->test_name($alias);
    if($test_name == TRUE){
        throw new Exception('Vui lòng chọn tên khác');
    }*/ 
    if(isset($_POST['data']['price_old'])){
           if(!is_numeric($_POST['data']['price_old'])){
            throw new Exception('Vui lòng nhập giá cũ sản phẩm là số');
        } 
    } else {
        $_POST['data']['price_old']=0;
    }
    $_POST['data']['price_old']=$dt_xl_admin->removeSQLI($_POST['data']['price_old']);
    if($_POST['data']['price_new']){
        if(!is_numeric($_POST['data']['price_new'])){
            throw new Exception('Vui lòng nhập giá mới sản phẩm là số');
        }
    }else{
       $_POST['data']['price_new']=0; 
    }
    $_POST['data']['price_new']=$dt_xl_admin->removeSQLI($_POST['data']['price_new']);
    if(empty($_POST['data']['material'])){
        throw new Exception('Vui lòng nhập chất liệu sản phẩm');
    }
    $_POST['data']['material']=$dt_xl_admin->xss_clean($_POST['data']['material']);
    if(empty($_POST['data']['size'])){
        throw new Exception('Vui lòng nhập kích thước sản phẩm');
    }
    $_POST['data']['size']=$dt_xl_admin->xss_clean($_POST['data']['size']);
    $_POST['data']['size']=strtoupper($_POST['data']['size']);
    $arr_size=array('S','M','L','XL','X');
    $string_size=explode(',',$_POST['data']['size']);
    foreach($string_size as $size){
       if(!in_array($size,$arr_size)){
            throw new Exception('Không tôn tại size này');
       } 
    }
    if(empty($_POST['data']['color'])){
        throw new Exception('Vui lòng nhập màu sản phẩm');
    }
    $_POST['data']['color']=$dt_xl_admin->xss_clean($_POST['data']['color']);
    if(isset($_POST['data']['warranty'])){
        if(!is_numeric($_POST['data']['warranty'])){
            throw new Exception('Vui lòng nhập thời gian bảo hành sản phẩm là số');
        }
    } else {
        
        $_POST['data']['warranty']=0;
    }
    $_POST['data']['warranty']=$dt_xl_admin->removeSQLI($_POST['data']['warranty']);
    
    if(isset($_POST['data']['quantity'])){
        if(!is_numeric($_POST['data']['quantity'])){
            throw new Exception('Vui lòng nhập số lượng sản phẩm phải là số');
        }
    }else{
        $_POST['data']['quantity']=0;
    }
    
    $_POST['data']['quantity']=$dt_xl_admin->removeSQLI($_POST['data']['quantity']);
    if(empty($_POST['data']['title'])){
        throw new Exception('Vui lòng nhập tiêu đề sản phẩm');
    }
    $_POST['data']['title']=$dt_xl_admin->xss_clean($_POST['data']['title']);
    if(empty($_POST['data']['keyword'])){
        throw new Exception('Vui lòng nhập từ khóa sản phẩm');
    }
    $_POST['data']['keyword']=$dt_xl_admin->xss_clean($_POST['data']['keyword']);
    if(empty($_POST['data']['description'])){
        throw new Exception('Vui lòng nhập mô tả sản phẩm');
    }
    $_POST['data']['description']=$dt_xl_admin->xss_clean($_POST['data']['description']);
    if($_FILES['image']['name'] == ''){
        throw new Exception('Bạn chưa chọn hình vui lòng chọn hình');
    }else{
        $avatar=isset($_FILES['image']['name'])?$_FILES['image']['name']:'';
    	$avatar=addslashes(stripslashes($avatar));
        $_FILES['image']['size']=$_FILES['image']['size']/1024;
        $arr_image=array('image/gif','image/jpeg','image/png','image/wbmp','image/xbm');
        if($avatar!=''){
            $type=mime_content_type($_FILES['image']['tmp_name']); // tránh bị đổi đuôi file
            if(in_array($type,$arr_image) === false){
    			throw new Exception('Không đúng định dạng cho phép của image');
    		}
    		if($_FILES['image']['error']!= 0){
    			throw new Exception('Xảy ra lỗi trong quá trình truyền tải image');
    		}		
            # bắt lỗi kích thước hình không cho vào data  tool crop_image
            
    		if($_FILES['image']['size']>900 || $_FILES['image']['size']<38){
    		  throw new Exception('Kích thước định dạng không đúng chuẩn của image');
    			
    		}
            $explode =explode('.',$avatar);
            $avatar =$dt_xl_admin->vn_str_filter($_POST['data']['name']).'.'.$explode[count($explode) -1];
        }
    }
    
    
    $_POST['data']['image']=$avatar;
    
     #Danh sach hinh
    $list_image = array();
        if(count($_FILES['product_image']['name']) > 0){
            for($i=0;$i<count($_FILES['product_image']['name']);$i++){
                $_FILES['product_image']['size'][$i]=$_FILES['product_image']['size'][$i]/1024;
                $image=isset($_FILES['product_image']['name'][$i])?$_FILES['product_image']['name'][$i]:'';
            	$image=addslashes(stripslashes($image));
            	if($image!=''){
            		$type=mime_content_type($_FILES['product_image']['tmp_name'][$i]);
            		if(($type != 'image/jpeg') && ($type != 'image/png')&& ($type != 'image/gif')){		
            		//kiem tra dung file hay khong
            			throw new Exception('Đinh dạng hình trong danh sách hình không đúng vui lòng chọn file hình đúng định dạng (JPG,PNG,GIF)');
            		}
                    //$_FILES['image']['size']>900 || $_FILES['image']['size']<38
            		if($_FILES['product_image']['size'][$i] > 900 || $_FILES['product_image']['size'][$i] < 38){//Kiem tra size hinh
            			throw new Exception('Size hình trong dach sach hình quá lớn');
            		}
            		if($_FILES['product_image']['error'][$i] != 0){
            			
            			throw new Exception('Đã bị lỗi khi upload danh sách hình');
            		}
                    $explode =explode('.',$image);
                    $n=count($dt_xl_product->read())+1;
                    $image = $dt_xl_admin->vn_str_filter($_POST['data']['name']).'-'.$i.'.'.$explode[count($explode) -1];
            	}
                $list_image[] = $image;
            }
        }
    if(empty($_POST['data']['highlights'])){
        $_POST['data']['highlights']=0;
    } else {
        $_POST['data']['highlights']=1;
    }
    $_POST['data']['highlights']=$dt_xl_admin->removeSQLI($_POST['data']['highlights']);
    if($_POST['data']['status']!=1 && $_POST['data']['status']!=0){
        throw new Exception('Trạng thái không đúng');
    }
    if(empty($_POST['data']['info'])){
        throw new Exception('Vui lòng nhập chi tiết sản phẩm');
    }
    $_POST['data']['alias'] =$alias;
    $_POST['data']['day_time']=date('Y-m-d H:i:s',time());
    $data=$_POST['data'];
    $product=$dt_xl_product->insert($data);
    if($product===false){
        throw new Exception('Ðã xảy ra trong quá trình truyền tải');
    }
    if($list_image[0] !=''){
    $list_product=$dt_xl_product->read_product_image();
        foreach($list_image as $list){
            $images=$dt_xl_product->insert_list($list_product['id'],$list);
            if($images === FALSE){
                throw new Exception('Xảy ra lỗi trong quá trình xử lý nhiều hình ảnh');
            }
        }
    }
    $day=image('product',date('m-Y'));
    if($data['image']!=''){    
    	if(!file_exists($day)){
    		mkdir($day,0755,true);  
    	} else {
            $_FILES['image']=str_replace($_FILES['image']['name'],$avatar,$_FILES['image']);
             crop_image($_FILES['image']['tmp_name'],$day.'/'.$_FILES['image']['name'],600,400);
        }
    } 
    ## xử lý nhiêu hình
    if($list_image[0] !=''){
        for($i=0;$i<count($_FILES['product_image']['name']);$i++){
            if(!file_exists($day)){
                mkdir($day,0755,true);  
            } else {
                 $_FILES['product_image']['name'][$i]=str_replace($_FILES['product_image']['name'][$i],$list_image[$i],$_FILES['product_image']['name'][$i]);
                 crop_image($_FILES['product_image']['tmp_name'][$i],$day.'/'.$_FILES['product_image']['name'][$i],600,400);
            }
        }  
    }

    $dbh=NULL;
    $_SESSION['msg']='Thành Công';
    $_SESSION['type_msg']='success';
    unset($_SESSION['data']);
    if(isset($_POST['save_continue'])){
        $url='product_add.php';
    } else {
        $url='product_list.php';
    }
    header("Location: $url");
} catch(Exception $e){
    $dbh=NULL;
    $_SESSION['msg']=$e->getMessage();
    $_SESSION['type_msg']='error';
    $_SESSION['data']=$_POST['data'];
    header('Location: product_add.php');
}